package com.groep14.manager;

import java.sql.ResultSet;
import java.sql.SQLException;

import com.groep14.model.ActiveOffer;
import com.groep14.project.Connectie;
import com.groep14.project.MyLogger;

/**
 * De WinkelwagenManager bevat methoden voor het selecteren van gegevens van een product aan de hand van het product_id
 *
 * @since R60 - 24 April 2012
 * @author Breght Van Tongerloo
 */

public class WinkelwagenManager {

	/**
	 * De winkelwagenManager haalt alle gegevens op van een product aan de hand van de product_id.
	 * 
	 * @param productID in de vorm van een Integer
	 */
	
	ActiveOffer p = new ActiveOffer();	
	// gegevens ophalen uit de database van het geselecteerde offer
	public WinkelwagenManager(int productID){
	
		MyLogger logger = new MyLogger();
		
		try{
			
			Connectie con = new Connectie();
			ResultSet result;
			
			
			con.setpStatement(con.getCon().prepareStatement("SELECT p.EAN_UCC_13, p.Name, p.Price, o.Offer_id, o.Discount FROM Products p join offers o on p.EAN_UCC_13 = o.EAN_UCC_13 WHERE p.EAN_UCC_13 = ?" ));
			con.getpStatement().setInt(1, productID);
			result = con.getpStatement().executeQuery();
			
			while(result.next()) { //productID, naam, prijs en offer_id in een object steken
				float PriceO = result.getFloat("p.Price");
				float Discount =result.getFloat("Discount")/100;
				float PriceN = PriceO-(PriceO*Discount);
				PriceN = (float) (Math.round(PriceN*Math.pow(10, 2))/Math.pow(10, 2));
				p.setEAN_UCC_13(result.getInt("p.EAN_UCC_13"));
				p.setName(result.getString("p.Name"));
				p.setPrice(PriceN);
				p.setOffer_id(result.getInt("o.Offer_id"));
				p.setAmount(1);
				
			}				
			
		}catch (SQLException e){
			logger.logException(getClass() + "- ", e);
		} catch (ClassNotFoundException e) {
			logger.logException(getClass() + "- ", e);
		} catch (InstantiationException e) {
			logger.logException(getClass() + "- ", e);
		} catch (IllegalAccessException e) {
			logger.logException(getClass() + "- ", e);
		}
		
	}
	
	/**
	 * De getProduct geeft een ActiveOffer object terug
	 */
	
	// gevuld object teruggeven
	public ActiveOffer getProduct(){
		return p;
	}
	
}

	